package com.coursehub.course.dto;

import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.fasterxml.jackson.annotation.JsonProperty;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;

/**
 * 课程创建DTO
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class CourseCreateDto {
    
    @JsonProperty("courseName")
    @NotBlank(message = "课程名称不能为空")
    @Size(max = 100, message = "课程名称长度不能超过100个字符")
    private String courseName;
    
    @JsonProperty("course")
    @Size(max = 1000, message = "课程描述长度不能超过1000个字符")
    private String course;
    
    @JsonProperty("teachingGoal")
    @Size(max = 200, message = "教学目标长度不能超过200个字符")
    private String teachingGoal;
    
    @JsonProperty("examinationMethod")
    @NotBlank(message = "考核方式不能为空")
    @Size(max = 100, message = "考核方式长度不能超过100个字符")
    private String examinationMethod;
    
    @JsonProperty("courseId")
    @Size(max = 100, message = "课程编号长度不能超过100个字符")
    private String courseId; // 用户输入的课程编号
    
    @JsonProperty("userId")
    private String userId; // 由认证上下文自动设置，不需要客户端提供
}